package chapter04;

/**
 * ClassName: PrimeNumberTest
 * Package: capter03
 * Description:
 *题目：找出100以内所有的素数（质数）？100000以内的呢？
 * 目的：不同的代码的实现方式，可以效率差别很大。
 * 分析：素数（质数）：只能被1和它本身整除的自然数。
 * ---> 从2开始，到这个数-1为止，此范围内没有这个数的约数。则此数是一个质数。
 * 比如：2、3、5、7、11、13、17、19、23、...
 * @Author 安思宇
 * @Create 2025/1/13 20:43
 */
public class PrimeNumberTest {
    public static void main(String[] args) {
//        方法一：
//        System.out.print("100以内的质数有:");
//        for (int i=2;i<=100;i++){
//            for (int j=2;j<=i;j++){
//                if (i!=j&&i%j==0){
//                    break;
//                }else if (i==j){
//                    System.out.print(i+" ");
//                    break;
//                }
//            }
//        }
//        方法二：
        System.out.print("100以内的质数有:");
        for (int i=2;i<=100;i++){
            boolean flag=true;//放在for外面和放在for里面是两种不同的结果
            for (int j=2;j<Math.sqrt(i);j++){//Math.sqrt(i)用于给i开根号
                if (i%j==0){
                    flag=false;
                    break;
                }
            }
            if (flag){
                System.out.print(i+" ");
            }
        }
    }
}
